Investigación Reproducible con R

Workshop Ciencia Abierta

Eloy Alvarado Narváez

Universidad Técnica Federico Santa María

Francisco Plaza-Vega

Universidad de Santiago de Chile

3 de enero de 2024

Módulo 1: Introducción a la Investigación Reproducible

¿Qué es la Investigación Reproducible?

Investigación Reproducible

Es la práctica de conducir estudios científicos o basados en datos de tal manera que permita a otros replicar o reproducir los resultados usando los mismos datos, códigos y metodologías.

¿Qué se entiende por un estudio Reproducible y Replicable?

Reproducible

Los autores entregan todos los datos necesarios y los códigos computacionales para realizar el análisis nuevamente, recreando los resultados.

Replicable

Un estudio que llega a los mismos hallazgos científicos que otro estudio, recolectando nuevos datos (posiblemente con diferentes métodos) y completando nuevos análisis.

Clases de Reproducibilidad

  • Reproducibilidad Computacional: Cuando se proporciona información detallada sobre el código, software, hardware y detalles de la implementación

  • Reproducibilidad Empírica: Cuando se proporciona información detallada sobre experimentos y observaciones científicas empíricas no computacionales. En la práctica, esto se ocurre al hacer que los datos y los detalles de cómo se recopilaron estén disponibles de forma gratuita.

  • Reproducibilidad Estadística: Cuando se proporciona información detallada, por ejemplo, sobre la elección de pruebas estadísticas, parámetros del modelo y valores de umbral. Esto se relaciona principalmente con el registro previo del diseño del estudio para evitar la práctica de p-value hacking y otras manipulaciones.

Reproducibilidad

Reproducibilidad

Ventajas y dificultades

Ventajas Dificultades
Historial completo del proyecto Incentivos limitados
Colaboración y Revisión Sesgo de las investigaciones hacia hallazgos novedosos
Evita la desinformación Mayores estándares
Escritura eficiente Se aplican mayores estándares a las investigaciones reproducibles
Reconocimiento justo No es considerado para las promociones
Asegura la continuidad del trabajo Variabilidad en el rendimiento de los software utilizados
Que una investigación sea reproducible no significa que esté correcta
Toma más tiempo

Etapas de una Investigación Reproducible

Ciencia Abierta

“1.500 scientist lift the lid on reproducibility”

Difusión y citas

Datos Abiertos

Solo una proporción muy pequeña de los datos originales se publica en revistas convencionales o investigaciones públicas. A pesar de las políticas existentes sobre el archivo de datos, en la actualidad, los datos se almacenan principalmente en archivos privados, no en repositorios institucionales seguros, y se pierde a ellos por parte del público general.

Esta falta de intercambio de datos es un obstáculo para la investigación internacional (ya sea académica, gubernamental o comercial) por dos razones principales:

  • Generalmente es difícil o imposible reproducir un estudio sin los datos originales.

  • Los datos no pueden ser reutilizados o incorporados en nuevos trabajos por otros investigadores si no pueden acceder a ellos.

Barreras para el intercambio de datos

Software de Código abierto

Cuando un proyecto es de código abierto, cualquiera puede ver, usar, modificar y distribuir el proyecto para cualquier propósito. Estos permisos se aplican a través de una licencia de código abierto

¿Cómo los software de código abierto benefician la investigación?

  • Re-usable

  • Comprobable

  • Colaborativo

Espectro de Reproducibilidad

Sofware necesarios

R project

https://cran.dcc.uchile.cl/

RSudio IDE

https://posit.co/download/rstudio-desktop/

Existen otras alternativas más génericas como Visual Studio Code, un editor de código para múltiples lenguajes. Sin embargo, al no ser un software especializado en R, requiere utilizar extensiones para lograr las funcionalidad que otorga RStudio.

Quarto

https://quarto.org/docs/get-started/

Git & Github

Example slide

This is a subtitle

Before we dive a bit deeper, here is a simple example of the clean theme in action.

  • No pictures or anything fancy. Just text for the moment.

Next, we’ll take a brief tour of some theme components.

  • We’ll use the same basic structure as the original LaTeX slides.
  • Note that the full suite of Reveal.js features are available for this Quarto implementation, even if we don’t cover everything here.

Before you proceed…

Requirements for the coding examples in this demo

R libraries

While the clean theme is language agnostic, we will use several R coding examples in this demo to highlight some advanced theme features.

You will need the following libraries if you’d like to render the template “as-is”:

123

TinyTex

While reveal.js presentations are HTML format, we will show an example of how to embed LaTeX tables as images. This requires a working Tex distribution, of which TinyTex provides by far the easiest and lightest integration with Quarto. More details here.

quarto install tinytex

Components

Components

Ordered and Unordered Lists

Here we have an unordered list.

  • first item
    • sub-item
  • second item

And next we have an ordered one.

  1. first item
    1. sub-item
  2. second item

Components

Alerts & Cross-refs

To emphasize specific words or text, you can:

  • Use the default .alert class, e.g. important note.
  • Use the .fg class for custom colour, e.g. important note.
  • Use the .bg class for custom background, e.g. important note.

To cross-reference, you have several options, for example:

  • Beamer-like .button class provided by this theme, e.g. Appendix
  • Quarto’s native cross-ref syntax, e.g., “See Sección 6.3.”

Components

Citations

Citations follow the standard Quarto format and be sourced from BibLaTex, BibTeX, or CLS files. For example:

Components

Blocks

Quarto provides dedicated environments for theorems, lemmas, and so forth.

But in presentation format, it’s arguably more effective just to use a Callout Block.

Regression Specification

The main specification is as follows:

\[ y_{it} = X_{it} \beta + \mu_i + \varepsilon_{it} \]

Components

Multicolumn I: Text only

Column 1

Here is a long sentence that will wrap onto the next line as it hits the column width, and continue this way until it stops.

Column 2

Some other text in another column.

A second paragraph.

Multicolumn support is very flexible and we can continue with a single full span column in the same slide.

Components

Multicolumn II: Text and figures

  • A point about the figure that is potentially important.
  • Another point about the figure that is also potentially important.

Note that sub- and multi-panel figures are also natively supported by Quarto. See here.

Components

Multicolumn III: Code and output

Tables

Tables

Regression example

Quarto offers excellent table support, with further customization via user libraries. Let’s illustrate with a regression example:

library(fixest)

mods = feols(
  rating ~ complaints + privileges + learning + csw0(raises + critical) + advance,
  data = attitude
)

dict = c("rating"     = "Overall Rating",
         "complaints" = "Handling of Complaints",
         "privileges" = "No Special Priviledges",
         "learning"   = "Opportunity to Learn",
         "raises"     = "Performance-Based Raises",
         "critical"   = "Too Critical",
         "advance"    = "Advancement")

Regression table

modelsummary

If you use modelsummary with this Quarto theme, we advise setting the gt backend for a cleaner aesthetic. More details here.

Regression table

etable

fixest’s powerful native tabling functions were designed for LaTeX output. But we can use the markdown = TRUE option to make them work with this theme too. (Details here.) Quick notes:

  • Install the tinytex & pdftools packages first.
  • Set the R chunk option output: asis.
```{r}
#| output: asis

setFixest_etable(markdown = TRUE, drop = "Constant")
setFixest_dict(dict)

etable(mods, highlight = .("se" = "complaints"))
```

Regression table

etable (cont.)

Figures

Figure

Figure

Full-size Figures

You can use the {.background-image} container environment to completely fill the slide background with an image.

Ideally, your figure will be the same aspect ratio as the screen that you’re presenting on.

  • This can be a bit tricky because of the dynamic nature of reveal.js / HTML. But it’s probably something close to 16:9.
  • Aspect ratio can also matter for a regular full-frame images (previous slide).

Interactive plots

Note: Simple flight data example using threejs. There are many interactive plotting options beyond this. (More details.)

Summary

Summary

A minimal and elegant presentation theme

The Quarto reveal.js clean theme aims to be a minimal and elegant presention theme.

We have highlighted some theme-specific components. But all of the regular reveal.js functionality is supported (chalkboard, etc.)

Install the theme:

quarto install extension grantmcdermott/quarto-revealjs-clean

Use these demo slides as a template:

quarto use template grantmcdermott/quarto-revealjs-clean-demo

References

Fajgelbaum, Pablo D, Eduardo Morales, Juan Carlos Suarez Serrato, y Owen Zidar. 2018. «State Taxes and Spatial Misallocation», 90.
Hsieh, Chang-Tai, y Enrico Moretti. 2019. «Housing Constraints and Spatial Misallocation». American Economic Journal: Macroeconomics 11 (2): 39.
Moretti, Enrico. 2011. «Local Labor Markets». En Handbook of Labor Economics. Vol. 4. Elsevier.
Suárez Serrato, Juan Carlos, y Owen Zidar. 2016. «Who Benefits from State Corporate Tax Cuts? A Local Labor Markets Approach with Heterogeneous Firms». American Economic Review 106 (9).

Appendix

Tabla 1: Summary of the base R attitude dataset
Unique (#) Missing (%) Mean SD Min Median Max
rating 22 0 64.6 12.2 40.0 65.5 85.0
complaints 23 0 66.6 13.3 37.0 65.0 90.0
privileges 24 0 53.1 12.2 30.0 51.5 83.0
learning 23 0 56.4 11.7 34.0 56.5 75.0
raises 21 0 64.6 10.4 43.0 63.5 88.0
critical 21 0 74.8 9.9 49.0 77.5 92.0
advance 20 0 42.9 10.3 25.0 41.0 72.0

Back to main